課程資訊
課程名稱
計算機程式設計
Computer Programming 
開課學期
107-2 
授課對象
 
授課教師
蘇國棟 
課號
EE4052 
課程識別碼
901 60200 
班次
01 
學分
2.0 
全/半年
半年 
必/選修
 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
 
備註
上課地點:計中212。A6:量化分析與數學素養
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1072EE4052_01 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

注意: 本課程需投入甚多時間撰寫程式,期末要完成繳交較大的期末計畫, 課業繁重或無法投入太多時間的同學請慎重考慮。

本課程係屬通識課程,以未寫過程式或初學的學生為授課對象,主要在教導學生如何撰寫計算機程式,讓電腦來執行以解決問題或讓生活更便利有趣,所要學習的語言是 Python。  

課程目標
能撰寫 Python 程式語言並順利執行可用電腦完成的任務。

The course is aimed at students with little or no prior programming experience who have desire to understand computational approaches to problem solving. The goal is to provide students with a brief introduction to many topics, so that they will have an idea of what’s possible when the time comes to think about how to use computation to accomplish a goal. After the class, students will learn to apply computational modes of thoughts to frame problems and to guide the process of extracting information from data in a computational manner. The primary knowledge you will take away from this book is the art of computational problem solving.

We braid together four strands of material:
• The basics of programming,
• The Python programming language,
• Concepts central to understanding computation, and
• Computational problem solving techniques.

We cover most of Python’s features, but the emphasis is on what one can do with a programming language, not on the language itself. For example, the first few classes have covered only a small fraction of Python, but it has already introduced the notions of exhaustive enumeration, guess-and-check algorithms, bisection search, and efficient approximation algorithms. We introduce features of Python throughout the lecture. Similarly, we introduce aspects of programming methods throughout the semester. The idea is to help students learn Python and how to be a good programmer in the context of using computation to solve interesting problems. It is my vision of this course to comfort students with computation technologies without sacrificing the speculations to daily life.
 
課程要求
具邏輯概念、大一數學能力,能花時間能努力學習

評分:
Homework: 60%
Midterm: 20%
Final: 20% 
預期每週課後學習時數
 
Office Hours
另約時間 備註: Appointment by E-mail 
指定閱讀
John V. Guttag, “Introduction to Computation and Programming Using Python”  
參考書目
http://mitpress.mit.edu/ICPPRE. 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
02/20  Introduction 
第2週
02/27  Data Manipulation 
第3週
03/06  Algorithms I
 
第4週
03/13  Algorithms II
 
第5週
03/20  Math and Python 
第6週
03/27  Numerical Programs 
第7週
04/03  Spring Break 
第8週
04/10  For Loops 
第9週
04/17  Midterm Exam 
第10週
04/24  Function 
第11週
05/01  Recursion 
第12週
05/08  Testing and Debugging 
第13週
05/15  Midterm Review 
第14週
05/22  Classes and Object Oriented Programming 
第15週
05/29  Case Study I 
第16週
06/05  Case Study II 
第17週
06/12  Artificial Intelligence & Theory of Computation 
第18週
06/19  Final Project Due